//package com.itemp.ms66btreceiver;
//
//import android.bluetooth.BluetoothAdapter;
//import android.bluetooth.BluetoothServerSocket;
//import android.bluetooth.BluetoothSocket;
//import android.util.Log;
//
//import java.io.ByteArrayOutputStream;
//import java.io.InputStream;
//import java.io.OutputStream;
//
//public class ListenThread extends Thread {
//    private String TAG = "ListenThread";
//    private BluetoothServerSocket bluetoothServerSocket;
//    private BluetoothSocket bluetoothSocket;
//    private InputStream inputStream;
//    private OutputStream outputStream;
//    private ListenThread listenThread;
//    private boolean listen = false;
//
//    public ListenThread(BluetoothAdapter bluetoothAdapter) {
//        try {
//            bluetoothServerSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("name", MY_UUID);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    @Override
//    public void run() {
//        listen = true;
//        Log.e(TAG, "开启设备连接监听" + listen + "/" + (state == STATE_DISCONNECT));
//        while (listen && state == STATE_DISCONNECT) {
//            try {
//                if (bluetoothSocket == null) {
//                    bluetoothSocket = bluetoothServerSocket.accept();
//                }
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//            if (bluetoothSocket != null) {
//                try {
//                    Log.e(TAG, "监听到设备连接");
//                    state = STATE_CONNECTING;
//                    inputStream = bluetoothSocket.getInputStream();
//                    outputStream = bluetoothSocket.getOutputStream();
//                    new Thread(new Runnable() {
//                        @Override
//                        public void run() {
//                            byte[] readBuffer = new byte[1024];
//                            byte[] buffer = new byte[1024];
//                            if (inputStream == null) {
//                                return;
//                            }
//                            ByteArrayOutputStream baos = new ByteArrayOutputStream();
//                            state = STATE_CONNECTED;
//                            while (true) {
//                                try {
//                                    int size = inputStream.read(buffer);
//                                    if (size > 0) {
//                                        baos.write(buffer, 0, size);
//                                        readBuffer = baos.toByteArray();
//                                        receiveData(readBuffer);
//                                        baos.reset();
//                                    } else if (size == -1) {
//                                        Log.e(TAG, "BluetoothSocket: 断开了");
//                                        break;
//                                    }
//                                } catch (Exception e) {
//                                    e.printStackTrace();
//                                    // 断开连接了，通常 inputStream.read 时触发这个
//                                    Log.e(TAG, "BluetoothSocket: 读取数据错误");
//                                    state = STATE_DISCONNECT;
//                                }
//                            }
//                        }
//                    }).start();
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
//        }
//    }
//
//    public void cancel() {
//        listen = false;
//        try {
//            if (bluetoothServerSocket != null) {
//                bluetoothServerSocket.close();
//                bluetoothServerSocket = null;
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    public void listen() {
//        if (state != STATE_DISCONNECT) {
//            return;
//        }
//        if (listenThread != null) {
//            listenThread.cancel();
//            listenThread = null;
//        }
//        listenThread = new ListenThread();
//        listenThread.start();
//    }
//}